package com.fdm.model.accounts;

import java.util.Map;

import com.fdm.model.exceptions.BankManagerException;
import com.fdm.model.exceptions.InsufficientFundsException;
import com.fdm.model.exceptions.LessThanZeroException;

public interface _Account
{
	public int getAccountNumber();
	
	public String getAccountType();
	
	public String getName();
	
	public double getBalance();
	
	public double getOverDraftLimit();
	
	public void setAccountNumber(Integer accountNumber);
	
	public void setAccountType(String type);
	
	public void setName(String name);
	
	public void setBalance(Double balance) throws LessThanZeroException;
		
	public void withdraw(Double amount) 
		throws InsufficientFundsException, LessThanZeroException;
	
	public void deposit(Double amount) throws LessThanZeroException;
	
	public void setAttributes(Map<String,Object> parameters) throws BankManagerException;
}
